bitkeeper revision 1.777.1.1 (40503a50e-1llqTCGgDibJS82qIg9g)
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Thu, 11 Mar 2004 10:07:12 +0000 (10:07 +0000)
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Thu, 11 Mar 2004 10:07:12 +0000 (10:07 +0000)
etherdevice.h, 8139too.c:
  Fixes to RTL8139 driver.

xen/drivers/net/8139too.c
xen/include/xeno/etherdevice.h

index ea8d74a5236cc710318c58066e1812e1e4f7e2e1..aa6b22a783d9633616f20d2db5013c5320993984 100644 (file)
@@ -128,7 +128,7 @@ typedef int pid_t;
 
 
 /* enable PIO instead of MMIO, if CONFIG_8139TOO_PIO is selected */
-#ifdef CONFIG_8139TOO_PIO
+#if defined(CONFIG_8139TOO_PIO) || defined(XEN) /* XXX MMIO fails on Xen :-( */
 #define USE_IO_OPS 1
 #endif
 
@@ -2250,6 +2250,7 @@ static int rtl8139_close (struct net_device *dev)
        return 0;
 }
 
+#ifndef XEN
 
 /* Get the ethtool Wake-on-LAN settings.  Assumes that wol points to
    kernel memory, *wol has been initialized as {ETHTOOL_GWOL}, and
@@ -2325,7 +2326,6 @@ static int netdev_set_wol (struct net_device *dev,
        return 0;
 }
 
-#ifndef XEN
 static int netdev_ethtool_ioctl (struct net_device *dev, void *useraddr)
 {
        struct rtl8139_private *np = dev->priv;
index 42fd14b18c1316827443fe6c42cc141710b4c85d..345875f795e30df9d00c7122d0c58dce3681295d 100644 (file)
@@ -25,6 +25,7 @@
 #define _LINUX_ETHERDEVICE_H
 
 #include <xeno/if_ether.h>
+#include <asm/domain_page.h>
 
 #ifdef __KERNEL__
 extern int             eth_header(struct sk_buff *skb, struct net_device *dev,
@@ -43,7 +44,9 @@ extern struct net_device *alloc_etherdev(int sizeof_priv);
 
 static inline void eth_copy_and_sum (struct sk_buff *dest, unsigned char *src, int len, int base)
 {
-       memcpy (dest->data, src, len);
+       char *vdata = map_domain_mem(__pa(dest->data));
+       memcpy(vdata, src, len);
+       unmap_domain_mem(vdata);
 }
 
 /**